\documentclass[12pt]{article}
\usepackage{floatrow}
\usepackage{caption}
\usepackage{graphicx}
\usepackage{indentfirst}

\pagestyle{empty}
\setcounter{secnumdepth}{2}

\topmargin=0cm
\oddsidemargin=0cm
\textheight=22.0cm
\textwidth=16cm
\parindent=5mm
\parskip=0.15cm
\topskip=0truecm
\raggedbottom
\abovedisplayskip=3mm
\belowdisplayskip=3mm
\abovedisplayshortskip=0mm
\belowdisplayshortskip=2mm
\normalbaselineskip=12pt
\normalbaselines

\begin{document}

\vspace*{0.5in}
\centerline{\bf\Large Design Document}

\vspace*{0.5in}
\centerline{\bf\Large Team 4}

\vspace*{0.5in}
\centerline{\bf\Large 11 March 2012}

\vspace*{1.5in}
\begin{table}[htbp]
\begin{center}
\begin{tabular}{|r | c|}
\hline
Name & ID Number \\
\hline\hline
Alex Attar & 9609695 \\
Kevin Carrington & 9470034 \\
Kevin El Hage & 9765727 \\
Jaime Francisco Jaramillo & 9272518 \\
Jimmy Nguyen & 5493277 \\
Scott Renaud & 9354891 \\
\hline
\end{tabular}
\end{center}
\end{table}

\clearpage

\pagestyle{plain}
\setcounter{page}{1}
\pagenumbering{arabic}

\section{Introduction}

The following document details functionalities of the  \textit{Task Management System} with a simple user interface (UI) that can easily facilitate the System's operations for the user. Of note, the UI will dispay the Task and Person windows for which the former is modifiable. This document will achieve the following objectives:

\begin{itemize}
\item Describing the subsystems that will collaborate and form the TMS as a whole
\item Displaying detailed diagrams that will describe the control flow of the TMS
\item Emphasizing the Model-View-Control architecture that was used for the current iteration of the TMS
\item Demonstrate what the TMS can perform through Dynamic Design Scenario diagrams
\end{itemize}

\subsection{Revision History}

There were changes and additions made to the previous version of the Task Management System as of March 11, 2012.

\begin{itemize}
\item The user interface is now added to assist users to perform their desired tasks on the current version of the TMS
\item The proposed inclusion of the login and role selection is not included in this version of the TMS
\item TMS reads an exisiting task file of the XML format only while outputting the task and person files as text and XML files
\item Function added to prompt user to save changes made to the data (if any) before closing the TMS
\end{itemize}

\newpage

\section{Architectural Design} \label{sec:arch}

The architectural design of the Task Management System is based on the Model-View-Control architecture which facilitates the User Interface feature that is included in the system. The following subsection will detail the MVC diagram and the rationale behind its use when designing the TMS. 

\subsection{Architectural Diagram}

\begin{figure}[htb]
\begin{center}
%includegraphics
\caption*{Architectural Diagram of the TMS}
\end{center}
\end{figure}

The diagram depicts the the entire system as a high-level structure with three subsystems: the Model, the View and the Controller. Of note, the Default is not a subsystem but rather a package that contains the main program that activates the TMS. The Model stores any data (new, exisiting or modified) that will be transmitted to the View. It also receives instructions from the Controller to display changes to the View. The Controller also listens to any directive that the user has requested (create new file, delete tasks, etc.) via the user interface located in the View. The MVC design was chosen primarily due to the demand of an interactive system that can store, modify and display data for the user. Simply put, the creation or modification of data is performed through the Controller subsystem and then stored in the Model subsystem which will be disseminated in the View subsystem. 

\subsection{Subsystem Interface Specifications}

Specification of the software interfaces between the subsystems,
i.e. specific messages (or function calls) that are exchanged by the subsystems.
These are also often called ``Module Interface Specifications''.
Description of the parameters to be passed into these function calls in order to have a service fulfilled,
including valid and invalid ranges of values.
Each subsystem interface must be presented in a separate subsection.

\section{Detailed Design} \label{sec:detail}

The design of the Task Management System is divided into three subsystems, all working synchronically. The Model subsystem will run first, followed by the View subsystem which will record any changes will be forwarded to the Controller. The Controller subsytem handles any changes made in the Model and displays it in the View.

\subsection{Subsystem 1}

\subsubsection{Detailed Design Diagram}

UML class diagram depicting the internal structure of the subsystem,
accompanied by a paragraph of text describing the rationale of this design.

\begin{figure}[htb]
\begin{center}
%includegraphics
\caption*{Detailed Diagram of Subsystem 1}
\end{center}
\end{figure}

\subsubsection{Units Description}

List each class in this subsystem and write a short description of its purpose,
as well as notes or reminders useful for the programmers who will implement them.
List all attributes and functions of the class.

\subsection{Subsystem 2}

\subsubsection{Detailed Design Diagram}

UML class diagram depicting the internal structure of the subsystem,
accompanied by a paragraph of text describing the rationale of this design.

\begin{figure}[htb]
\begin{center}
%includegraphics
\caption*{Detailed Diagram of Subsystem 2}
\end{center}
\end{figure}

\subsubsection{Units Description}

List each class in this subsystem and write a short description of its purpose,
as well as notes or reminders useful for the programmers who will implement them.
List all attributes and functions of the class.

\subsection{Subsystem 3}

\subsubsection{Detailed Design Diagram}

UML class diagram depicting the internal structure of the subsystem,
accompanied by a paragraph of text describing the rationale of this design.

\begin{figure}[htb]
\begin{center}
%includegraphics
\caption*{Detailed Diagram of Subsystem 3}
\end{center}
\end{figure}

\subsubsection{Units Description}

List each class in this subsystem and write a short description of its purpose,
as well as notes or reminders useful for the programmers who will implement them.
List all attributes and functions of the class.

\section{Dynamic Design Scenarios}

Describe some (at least two) important execution scenarios of the system using UML sequence diagrams.
These scenarios must demonstrate how the various subsystems and units are interacting to achieve a system-level service.
Units and subsystems depicted here must be compatible with the descriptions provided in
section \ref{sec:arch} and \ref{sec:detail}.

\begin{figure}[htb]
\begin{center}
%includegraphics
\caption*{Dynamic Design Scenario 1}
\end{center}
\end{figure}

\begin{figure}[htb]
\begin{center}
%includegraphics
\caption*{Dynamic Design Scenario 2}
\end{center}
\end{figure}

\end{document}
